package practice;

import java.util.Comparator;
import java.util.PriorityQueue;
import java.util.Scanner;

public class Day13 {
    //优先级队列（TopK问题）
    //题目
    //chika很喜欢吃蜜柑。每个蜜柑有一定的酸度和甜度，chika喜欢吃甜的，但不喜欢吃酸的。
    //一共有n个蜜柑，chika吃k个蜜柑，将获得所吃的甜度之和与酸度之和。chika想获得尽可能大的甜度总和。如果有多种方案，她希望总酸度尽可能小。
    //她想知道，最终的总酸度和总甜度是多少？
    //链接：https://ac.nowcoder.com/acm/problem/26221
    //输入：
    //第一行有两个正整数n和k，分别代表蜜柑总数和chika吃的蜜柑数量。(1≤k≤n≤200000)
    //第二行有n个正整数ai，分别代表每个蜜柑的酸度。（1≤ai≤1e9）
    //第二行有n个正整数bi，分别代表每个蜜柑的甜度。（1≤bi≤1e9）
    public static void main1(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int k = in.nextInt();
        long[] a = new long[n];
        long[] b = new long[n];
        for(int i = 0; i < n; i++) {
            a[i] = in.nextLong();
        }
        PriorityQueue<Integer> queue = new PriorityQueue<>(k,(o1,o2)->{
            if(b[o1] == b[o2]) {
                return (int)(a[o2] - a[o1]);
            }
            return (int)(b[o1]-b[o2]);
        });
        for(int i = 0; i < n; i++) {
            b[i] = in.nextLong();
        }
        for(int i = 0; i < k; i++) {
            queue.offer(i);
        }
        for(int i = k; i < n; i++) {
            int j = queue.peek();
            if(b[j] < b[i]) {
                queue.poll();
                queue.offer(i);
            }else if(b[j] == b[i] && a[i] < a[j]) {
                queue.poll();
                queue.offer(i);
            }
        }
        long hp = 0;
        long sh = 0;
        while(!queue.isEmpty()) {
            int i = queue.poll();
            hp += b[i];
            sh += a[i];
        }
        System.out.println(sh + " " + hp);
    }
    //链接：https://ac.nowcoder.com/acm/problem/224679
    //题目：
    //小红有一天看到了一只桃子，由于桃子看上去就很好吃，小红很想把它吃掉。
    //已知吃下桃子后，每天可以获得 a[i]的快乐值，但是每天会获得 b[i] 的羞耻度。桃子的持续效果一共为 k 天。
    //小红想知道，自己在哪一天吃下果实，可以获得尽可能多的快乐值？
    //如果有多个答案获得的快乐值相等，小红希望获得尽可能少的羞耻度。
    //如果有多个答案的快乐值和羞耻度都相等，由于小红实在太想吃桃子了，她希望尽可能早的吃下桃子。
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int k = in.nextInt();
        long[] a = new long[n];
        long[] b = new long[n];
        for(int i = 0; i < n; i++) {
            a[i] = in.nextLong();
        }
        for(int i = 0; i < n; i++) {
            b[i] = in.nextLong();
        }
        int left = 0;
        int right = 0;
        int ret = 0;
        long hp = 0;
        long lastHp = 0;
        long sh = 0;
        long lastSh = 0;
        while(right < n) {
            while(right - left < k) {
                hp += a[right];
                sh += b[right];
                right++;
            }
            if(hp > lastHp) {
                hp = lastHp;
                sh = lastSh;
                ret = left;
            }else if(hp == lastHp && sh < lastSh) {
                sh = lastSh;
                ret = left;
            }
            hp -= a[left];
            sh -= b[left];
            left++;
        }
        System.out.println(ret+1);
    }
}
